PyTorch深度学习笔记之神经网络的构成
理解神经网络的基本组成部分,如张量、张量运算和梯度递减等
目录
2.1 安装PyTorch
使用pip或者conda来安装,推荐使用Anaconda Python3发行版
最新版本的安装:conda install pytorch torchvision cudatoolkit=10.0 -c pytorch
2.2 实现第一个神经网络
准备数据
- 标量(0维张量)
- 向量(1维张量)
- 矩阵(2维张量)
- 3维张量
- 切片张量
- 4维张量
- 5维张量
- GPU张量
创建数据
- 创建学习参数
变量的创建,requires_grad的值是False;初始化学习参数,requires_grad的值是True - 神经网络模型
- 网络的实现
PyTorch在torch.nn中提供了称为层(layer)的高级抽象,层将负责多数常见的技术都需要用到的后台初始化和运算工作。 - 损失函数
torch.nn库中有不同的损失函数,如均方差(又称方差,MSE)损失和交叉熵损失。 - 优化神经网络
不同的优化器,如Adam、RmsProp和SGD,已在torch.optim包中实现好
加载数据
两个重要的工具类:Dataset类和DataLoader类
- Dataset类
任何自定义的数据集类,都要继承自PyTorch的数据集类。
自定义的类必须实现两个函数:len(self)和__getitem__(self,idx) - DataLoader类
DataLoader类通过提取出大部分复杂度来帮助创建批数据。
DataLoader类位于PyTorch的utils类中,它将数据集对象和不同的取样器联合,如SequentialSampler和RandomSampler,并使用单进程或多进程的迭代器,为我们提供批量图片。
取样器是为算法提供数据的不同策略。
PyTorch团队也维护了两个有用的库,即torchvision和torchtext,这两个库基于Dataset和DataLoader类构建。